function scrollToFilter() {
    const filterElement = document.querySelector('#J_filter');
    if (filterElement) {
        // 先等待1秒
        setTimeout(() => {
            filterElement.scrollIntoView({ 
                behavior: 'smooth' // 平滑滚动
            });
        }, 1000);
    } else {
        console.error('未找到 <div id="J_filter" class="filter"> 元素');
    }
}

function scrollToJPage() {
    const jPageElement = document.querySelector('.jPage');
    if (jPageElement) {
        jPageElement.scrollIntoView({ 
            behavior: 'smooth' // 平滑滚动
        });
    } else {
        console.error('未找到 <div class="jPage"> 元素');
    }
}

// 在页面加载完成后调用滚动函数
scrollToFilter();
// 延迟 1 秒后滚动到 jPage 元素
setTimeout(scrollToJPage, 500); 

let clickCount = 0;
const maxClicks = 200; // 最大点击次数

function clickNextPage() {
    const nextPageLink = document.querySelector('.fp-next');
    if (nextPageLink) {
        nextPageLink.click();
        clickCount++;
        console.log(`点击了第 ${clickCount} 次`);
        if (clickCount >= maxClicks) {
            console.log('达到最大点击次数，停止点击');
            clearInterval(intervalId);
        }
    } else {
        console.error('未找到下一页元素');
    }
}

// 开始定时点击
//const intervalId = setInterval(clickNextPage, 2000); // 每 2 秒点击一次

// 定义一个函数来获取元素信息
function getProductInfo() {
    // 使用 querySelectorAll 方法获取所有具有 jdNum 类的 span 元素
    const priceElements = document.querySelectorAll('.jdNum');
    // 使用 querySelectorAll 方法获取所有具有 jDesc 类的 div 元素下的 a 元素
    const productNameElements = document.querySelectorAll('.jDesc a');

    // 存储产品信息的数组
    const products = [];

    // 遍历价格元素和商品名称元素
    for (let i = 0; i < priceElements.length && i < productNameElements.length; i++) {
        // 获取价格元素的文本内容
        const price = priceElements[i].textContent;
        // 获取商品名称元素的文本内容
        const productName = productNameElements[i].textContent;
        // 获取商品链接元素的 href 属性
        const productLink = productNameElements[i].href;
        // 将价格、商品名称和商品链接存储为对象添加到产品数组中
        products.push({
            price: price,
            productName: productName,
            productLink: productLink
        });
    }

    return products;
}

// 调用函数获取产品信息
const productInfos = getProductInfo();
// 打印产品信息数组
console.log(productInfos);

// 添加下载文本文件的函数
function downloadTxt(content, filename) {
    const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = filename;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
}

// 修改监控函数
function startProductMonitoring(interval = 5000) {
    console.log('开始监控商品信息...');
    let currentPage = 1;
    
    async function monitor() {
        console.log(`==== 第 ${currentPage} 页商品信息采集 ====`);
        console.log('采集时间:', new Date().toLocaleString());
        
        // 先执行滚动
        scrollToFilter();
        // 随机延迟 300-800ms
        await new Promise(resolve => setTimeout(resolve, 300 + Math.random() * 500));
        scrollToJPage();
        await new Promise(resolve => setTimeout(resolve, 500));
        
        // 获取商品信息
        const products = getProductInfo();
        
        // 只存储当前页的数据
        let currentPageData = '';
        
        // 格式化商品信息
        products.forEach(product => {
            const productLine = `${product.productName},${product.price},${product.productLink}\n`;
            currentPageData += productLine;
            // 同时在控制台显示
            console.log(productLine);
        });

        // 下载当前页数据
        const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
        downloadTxt(currentPageData, `topsports_products_page${currentPage}_${timestamp}.txt`);
        
        // 点击下一页
        const nextPageLink = document.querySelector('.fp-next');
        if (nextPageLink) {
            nextPageLink.click();
            currentPage++;
            console.log(`正在跳转到第 ${currentPage} 页...`);
        } else {
            console.log('没有找到下一页按钮，监控结束');
            clearInterval(monitorInterval);
        }
    }

    // 立即执行一次
    monitor();
    
    // 设置定时器循环执行
    const monitorInterval = setInterval(monitor, interval);
    
    return monitorInterval;
}

// 停止监控的函数
function stopProductMonitoring(intervalId) {
    clearInterval(intervalId);
    console.log('商品信息监控已停止');
}

// 使用方法（在控制台中）：
// 开始监控：const monitorId = startProductMonitoring(5000);  // 每5秒执行一次
// 停止监控：stopProductMonitoring(monitorId);